package com.wzh.other;

import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUnit;
import cn.hutool.core.date.DateUtil;

import java.util.Date;

/**
 * @description:
 * @author: WZH
 * @time: 2021/10/29 15:25
 */
public class Demo2 {
    private static int getFibo(int i) {
        if (i == 1 || i == 2)
            return 1;
        else
            return getFibo(i - 1) + getFibo(i - 2);
    }

    public static void main(String[] args) {
//        System.out.println("斐波那契数列的前20项为：");
//        for (int j = 1; j <= 20; j++) {
//            System.out.print(getFibo(j) + "\t");
//            if (j % 5 == 0) {
//                System.out.println();
//            }
//        }


        int[] base = base(20);
        System.out.println(base);
        for (int i = 0; i < base.length; i++) {
            System.out.print(base[i] + "\t");
            if (i % 5 == 0) {
                System.out.println();
            }
        }

    }


    private static  int[] base(int num){
        int[] array = new int[num];
        array[0] = 1;
        array[1] = 1;

        for (int i = 2; i < num; i++) {

            int k = 0;
            int j = i;
            for (int c = j-2; c < j; c++) {
                k+=array[c];
            }
            array[i] = k ;

        }

        return array;
    }

    private static int cc(int[] arr,int num) {

        int k = 0;
        for (int i = num - 2; i < num; i++) {
            k += arr[i];
        }
        return k;

    }

    /**
     *    我们在利用计算机求汉诺塔问题时，必不可少的一步是对整个实现求解进行算法分析。
     *    到目前为止，求解汉诺塔问题最简单的算法还是同过递归来求，
     *    至于是什么是递归，递归实现的机制是什么，我们说的简单点就是自己是一个方法或者说是函数，
     *    但是在自己这个函数里有调用自己这个函数的语句，而这个调用怎么才能调用结束呢？，
     *    这里还必须有一个结束点，或者具体的说是在调用到某一次后函数能返回一个确定的值，接着倒数第
     *    二个就能返回一个确定的值，一直到第一次调用的这个函数能返回一个确定的值。
     *
     *    实现这个算法可以简单分为三个步骤：
     * @param num
     * @return
     */

    private static  int dd(int num){
        int x = num;
        int y = 0;
        int z = 0;





        return 0;





    }





}
